#pragma once

#include <cstdint>
#include <memory>
#include <boost/asio.hpp>
#include <boost/noncopyable.hpp>

namespace net = boost::asio;
using tcp = net::ip::tcp;

enum net_error_code {
    NET_EC_OK = 0,
    NET_EC_E_INVALID_PARAM,
    NET_EC_E_OUT_OF_MEMORY,
    NET_EC_E_NULL_PTR,
    NET_EC_NOT_FOUND,
    NET_EC_DUPLICATE,
    NET_EC_ALREADY_EXIST,

    NET_EC_PASSWORD_ERROR,
    NET_EC_DB_ERROR,
    NET_EC_INVALID_STATE,
    NET_EC_NOT_SUPPORT,

    NET_EC_CHECKSUM_ERROR,

    NET_EC_MATCHING_ERROR,

    NET_EC_PROTOBUF_PARSE_FAILED,
    NET_EC_PROTOBUF_SEARILIZE_FAILED,
};
